<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>组件注册</title>
</head>
<body>

<!--
  全局组件注册语法
  Vue.component('组件名', {
    data: 组件数据(data是一个函数)
    template: 组件模板内容
  })

  data必须是一个函数
  组件模板内容必须是单个根元素
  组件模板内容可以是模板字符串

  组件命名可以是短横线，也可以是驼峰式
-->

<div id="app">
  <button-counter></button-counter>
</div>

<script src="../lib/vue.js"></script>
<script>
  Vue.component('button-counter', {
    // 使用函数会形成一个闭包，以保证每个组件实例有一份独立的数据
    data: function () {
      return {
        count: 0
      }
    },
    template: `
      <button @click="add">点击了 {{count}} 次</button>
    `,
    methods: {
      add() {
        this.count++
      }
    }
  })

  let vm = new Vue({
    el: '#app',
  })
</script>

</body>
</html>